home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / reader_requests / scilab / tests / rtitr.dia.ref < prev    next >
Text File  |  1999-09-16  |  2KB  |  123 lines

  1.  
  2. //test de la fonction rtitr
  3.  
  4. eps=100*%eps;
  5.  
  6. //
  7.  
  8. //siso
  9.  
  10. //----
  11.  
  12. //
  13.  
  14. //causal
  15.  
  16. //n1 scalaire
  17.  
  18. n1=1;d1=poly([1 1],'s','c');       // yj=y(j-1)+u(j-1)
  19.  
  20. r1=[0 1 0 1 0 1 0 1 0 1 0];
  21.  
  22. r=rtitr(n1,d1,ones(1,10));if norm(r1-r)>eps then bugmes();quit;end
  23.  
  24. //redemarrage a chaud
  25.  
  26. r=rtitr(n1,d1,ones(1,9),1,0);if norm(r1(2:11)-r)>eps then bugmes();quit;end
  27.  
  28. //n1 polynomial
  29.  
  30. n1=poly(1,'s','c');
  31.  
  32. r=rtitr(n1,d1,ones(1,10));if norm(r1-r)>eps then bugmes();quit;end
  33.  
  34. //
  35.  
  36. r=rtitr(n1,d1,ones(1,9),1,0);if norm(r1(2:11)-r)>eps then bugmes();quit;end
  37.  
  38. //
  39.  
  40. //non causal
  41.  
  42. n2=poly([1 1 1],'s','c');d2=d1;    // yj=-y(j-1)+u(j-1)+u(j)+u(j+1)
  43.  
  44. r2=[2 1 2 1 2 1 2 1 2];
  45.  
  46. r=rtitr(n2,d2,ones(1,10));if norm(r-r2)>eps then bugmes();quit;end
  47.  
  48. //redemarrage a chaud
  49.  
  50. r=rtitr(n2,d2,ones(1,9),1,2);if norm(r2(2:9)-r)>eps then bugmes();quit;end
  51.  
  52. //
  53.  
  54. //mimo
  55.  
  56. //----
  57.  
  58. //
  59.  
  60. //causal
  61.  
  62. d1=d1*diag([1 0.5]);n1=[1 3 1;2 4 1];r1=[5;14]*r1;
  63.  
  64. r=rtitr(n1,d1,ones(3,10));if norm(r1-r)>eps then bugmes();quit;end
  65.  
  66. //
  67.  
  68. r=rtitr(n1,d1,ones(3,9),[1;1;1],[0;0]);if norm(r1(:,2:11)-r)>eps then bugmes();quit;end
  69.  
  70. //n1 polynomial
  71.  
  72. n1(1,1)=poly(1,'s','c');
  73.  
  74. r=rtitr(n1,d1,ones(3,10));if norm(r1-r)>eps then bugmes();quit;end
  75.  
  76. //
  77.  
  78. r=rtitr(n1,d1,ones(3,9),[1;1;1],[0;0]);if norm(r1(:,2:11)-r)>eps then bugmes();quit;end
  79.  
  80. //non causal
  81.  
  82. d2=d1;n2=n2*n1;r2=[5;14]*r2;
  83.  
  84. r=rtitr(n2,d2,ones(3,10));if norm(r2-r)>eps then bugmes();quit;end
  85.  
  86. //
  87.  
  88. r=rtitr(n2,d2,ones(3,9),[1;1;1],[10;28]);if norm(r2(:,2:9)-r)>eps then bugmes();quit;end
  89.  
  90.  
  91. //
  92.  
  93.   a = [0.21 , 0.63 , 0.56 , 0.23 , 0.31
  94.        0.76 , 0.85 , 0.66 , 0.23 , 0.93
  95.        0 , 0.69 , 0.73 , 0.22 , 0.21
  96.        0.33 , 0.88 , 0.2 , 0.88 , 0.31
  97.        0.67 , 0.07 , 0.54 , 0.65 , 0.36];
  98.  
  99.   b = [0.29 , 0.5 , 0.92
  100.        0.57 , 0.44 , 0.04
  101.        0.48 , 0.27 , 0.48
  102.        0.33 , 0.63 , 0.26
  103.        0.59 , 0.41 , 0.41];
  104.  
  105.   c = [0.28 , 0.78 , 0.11 , 0.15 , 0.84
  106.        0.13 , 0.21 , 0.69 , 0.7 , 0.41];
  107.  
  108.   d = [0.41 , 0.11 , 0.56
  109.        0.88 , 0.2 , 0.59];
  110.  
  111. s=syslin('d',a,b,c,d);
  112.  
  113. h=ss2tf(s);num=h(2);den=h(3);den=den(1,1)*eye(2);
  114.  
  115. u=1;u(3,10)=0;
  116.  
  117. r3=flts(u,h);
  118.  
  119. //r=rtitr(num,den,u);if norm(r3-r)>1000*eps then bugmes();quit;end
  120.  
  121.  
  122.  
  123.